home *** CD-ROM | disk | FTP | other *** search
-
-
- Lhf v1.03 (CLI and Intuition archiver)
- (c) Copyright 1993 by author Stefan Pampin.
- Written using varios translators.
-
- 0) This document
- ---------------------------------------------------------------------------
- This text is written in bad english. I'm sure that the extra work this
- will take you reading it will be rejectable consider to the work I spend to
- write it. In all cases, the work is done for you.
-
- 1) Disclaimer
- ---------------------------------------------------------------------------
- The author cannot be held liable for the suitability or accuracy of this
- manual and/or the program(s) it describes. Any damage directly or
- indirectly caused by the use or misuse of this manual and/or the program
- it describes is the sole responsibility of the user her/him self.
-
-
- 2) Copyright/Distribution
- ---------------------------------------------------------------------------
- Lhf, (c) Copyright 1993 by author. All rights reserved. This
- program is FREEWARE so no financial donations are required ( but welcome ).
- This program may be freely distributed as long as all files, i.e.
- documentation and executable(s) remain unchanged and are included with the
- distribution. (See the exception 3) below). Also no profit is to be made by
- selling this program. You may not charge more than a resonable fee for the
- distribution. This program may be distributed on disk magazines, cover
- disks etc. When you do decide to distribute this program on a disk magazine
- tell me before.
-
-
- 3) Electronic Distribution
- ---------------------------------------------------------------------------
- It is allowed for non-commercial BBSs to distribute an archive with only
- the following files in it:
-
- Lhf - Main Program
- Lhf.doc - Main Program Manual (This file)
- Lhf.info - Main Program Icon.
-
- LhfEd - Config Program
- LhfEd.doc - Config Program Manual
- LhfEd.info - Config Program Icon.
-
- You may NOT upload this or any other form of this software on BBSs that
- claim copyrights on the uploaded material!
-
-
- 4) Requirements
- ---------------------------------------------------------------------------
- Lhf should run with all amigas version 1.3 or higher. One feature is
- disabled for pre 2.0 users, 2.x style pattern maching. The colors will
- look inverted on the 1.3 system. Perhaps I write specific versions for
- pre and nonpre 2.0 users.
- IT IS STILL UNTESTED UNDER OTHER SYSTEMS THAN 2.1 PAL. PLEASE IF YOU HAVE
- PROBLEMS WITH LHF UNDER YOUR SYSTEM LET ME KNOW, SO I CAN CORRECT IT.
- SPECIALLY, NOTES ON SCREEN DIMENSIONS ARE WELCOME. I THINK THERE COULD BE
- PROBLEMS WITH SYSTEMS MIXING BETWEEN PAL AND NTSC DISPLAY MODES.
-
- 5) Running Lhf
- --------------------------------------------------------------------------
- You can start Lhf from either the CLI or the Workbench. Lhf have two
- user interfaces. One is CLI and the other is Intuition driven. The CLI-
- interface is invoked from CLI by entering one or more command lines
- arguments. You can type 'Lhf ?' for a description (or see 7) below). If
- no parameters are given when Lhf is started from CLI it will act like it
- was started from WB, i.e. enter it's intuition interface described under
- 6) below.
-
- 6) Intuition Interface
- ----------------------------------------------------------------------------
- * --- GENERAL --- *
-
- Almost every gadget have diffrent action when they are selected
- with the right or left mouse button (even arrow gadgets which pages
- instead of scrolling when pressed with the right).
-
- * --- ENTRY BOX ACTION--- *
-
- To enter a directory or a archive in a entry box simply press the
- right mouse button over the entry. To select file entries press the
- left mouse button over the entry. You can multi select (even with
- scroll) by holding the left button down and drag over the entries.
- To unselect a entry simply select it again. See also [ ALL ] and
- [ CLR ] about selection.
- If a directory are selected the selection acts recursively on
- the childs to that directory, but in some cases (such as the
- [ RENAME ] function) this action is not taken. The action for
- the user defined buttons are optional - act only on files,act
- only on directory,act on both file and directories and finally
- acts recursively or not.
- If you enter a legal path that is a existing real path or a
- existing path to a archive ev joined by slash with a archive
- path, that path file content will be showed.
- With the textless gadgets you can switch between showing size
- protection,date or time. Some archive directories are fictive,
- why there creation date are not showen.
-
- * --- TEXT BUTTON GADGET ACTION --- *
-
-
- If you select a gadget (that is not obviosly specific to a
- slider box) with left (right) mouse button, the box left (right)
- box wish displays file entries will be called the source box.
- The right (left) box is the destination box.
-
- [ ALL ]
- Selects all entries in the source box.
-
- [ CCOPY ]
- Function like [ COPY ] but files are CLONE copied
- instead of using the copy action you can select in a
- option window.
-
- [ COPY ]
- This function will copy FROM source box TO the dest-
- ination box. Thus if the source and destination box both
- are ordinary directories ,ordinary copy is performed. If
- the boxes are archives, selected entries are effectively
- replaced in the destination arhive (without having to
- extract and recompress). If the boxes are of diffrent
- kind extraction or compression are performed.
-
- Currently there is one restriction. Source and dest-
- ination archives must be destinct.
- If you want you can copy a archive to it self (like
- an archive backup) but ensure that the archive is packed
- before and that no files are replaced. You can in all
- cases safely delete it from the archive.
-
-
- [ CMOVE ]
- Function like [ CCOPY ] but files are moved.
-
- [ CLR ]
- Unselects all entries in the source box.
-
- [ DELETE ]
- This deletes the selected files and directories of a
- ordinary or archive directory. In the latter case no pack -
- ing are performed (to recieve minimal size you have to
- [ PACK ] it).
- [ DUP ]
- Duplicates the source box display to destination box
- display.
-
- [ FREEUP ]
- Reset the state of source box. All associated cathe
- will be flushed.
-
- [ MAKEARC ]
- This makes a archive (if not existed) in the source
- box with the name you are ask to enter.
-
- [ MAKEDIR ]
- This makes a directory (if not existed) in the source
- box with the name you are ask to enter. This even works
- if you are in a archive.
-
- [ MOVE ]
- Function like [ COPY ] but files are moved.
-
- [ OPTIONS ]
- Will give you posibility to setup options. Diffrent
- options windows will appear depending on the mouse
- selection. With the save posibility, you can setup
- your prefered default options for an unaltered copy
- of Lhf (see Options below).
-
- [ PACK ]
- This will pack those entries in the source box
- representing an unoptimated archive. No compression
- is performed only file operations.
-
- [ RENAME ]
- A string requester will ask you to enter a new name
- for each selected file. This new name is relative to the
- source box's path.
-
- [ REPAIR ]
- Applies to the files selected in the source box. If
- they appear as a corrupted archive, the function will try
- to recover some data from them by repairing them.
-
- [ SCREEN ]
- Toggle if Lhf should try to open a own screen for its
- windows.
- [ STORE ]
- This require that the source box displays a ordinary
- directory and the destination box displays a archive
- directory. It stores files without any compression into
- the archive. It is preferable if you wish to add a archive
- as a simple file to another archive, since the compression
- ratio, in general, will be better.
-
- [ SWAP ]
- This swaps the source and destination box.
-
- [ UPDATE ]
- Update the source box. This can be nessasary due to
- that the internal catche,external command action or
- multitasking.
-
- [ <User defined> ]
- With the program LhfEd you can add button gadgets that
- calls external commands. Be sure to work with unmodified
- (including crunched) copies of Lhf. See the documentation
- file LhfEd.doc for more information.
-
- 7) CLI Interface
- ----------------------------------------------------------------------------
- The CLI usage is as follow:
-
- Lhf <command> <archive> [<target archive>] [<pattern> ..]
-
- You can type 'Lhf ?' for a list of available commands and options.
- Also see the option section 8).
-
- Command and options are case sensitive.
-
- Options can be given anywhere on command line.
-
- Note that the home and destination directories (selected by the -h
- resp. -d options) corresponds to what is displayed in the source resp.
- destination box's string gadget. They both default to current dir. It
- is important that any path name part that ending in the char ':' is
- given here and not in the patterns.
-
- Pattern matching is allowed under 2.x and acts recusively. Thus '#?'
- is every file and dirs in the directory and it's subdirectories.
- If no patterns are specified when command is l (list) or x (extract)
- all files in the archive are selected.
- The extention .f is not needed and must be specified if it is used (
- this allows you to name archives '.f' wich is the default name that
- appear in the make-directory-requester).
-
- Some examples:
- --------------
-
- 1) Lhf r Arc -hSrcPath -dDstPath #?.(c|h) MakeFile
- - Compress all C files and/or MakeFile in SrcPath and store (ev.
- replace) the data in a sub dir DstPath to the archive. If DstPath
- not already is an existing path in the archive it is created.
-
- 2) Lhf x Arc -hSrcPath -dDstPath #?.(c|h)
- - Extract all C files stored in the archive sub dir SrcPath to the
- real path DstPath. If DstPath not already is an existing path it
- is created before.
-
- 3) Lhf x Arc
- - Extract all files and directories in Arc to the current directory.
-
- 4) Lhf l Arc -hSubPath
- - List all files and directories stored in the sub path 'SubPath' to
- the archive 'Arc'.
-
- 5) Lhf c Arc1 Arc2 Dir File
- - Copy the file File and the directory Dir (and all it's files and
- sub directories) in the archive Arc1 to the root directory of the
- archive Arc2.
-
- 6) Lhf d Arc -hPath Dir1 Dir2
- - Delete the sub directories 'Path/Dir1' and 'Path/Dir2' (and all it's
- files and sub dircetories) in the archive 'Arc'.
-
- 7) Lhf p Arc
- - Pack the archive 'Arc'.
-
- 8) Options
- ----------------------------------------------------------------------------
- (The left button selected option window)
- ------------------------------------------
- 8.1) Compression options
- -------------------------
- 1) Input buffer size (CLI option I), the I-value.
- If this buffer is suppressed by giving a value less than the S-value.
- For small I-values input will be readed direcly into compression buffer
- and it will function at a least factor by wich input are readed.
-
- 2) Output buffer size (CLI option O) the O-value.
- If this buffer is small consider to the H-value it will function like a
- least factor by wich output is written. A value of zero forces output with
- no care of alignment and approximately the size of the H-value * 1.25.
-
- 3) Huffman buffer size (CLI option H) the H-value.
- The default size is best in most cases, but changing it can trim a few
- bytes for the result. Note that it a word size.
-
- 4) Buffer step size (CLI option S) the S-value.
- This is the internal compression work step. Currently the progress
- value and big deal of stubs is going throw each step. Therefore don't
- select it to small. On the other size, the smallest value will give
- the best compression but it is enoght that the ratio N/S is small.
- Note that N is an even multipel of this size, why you can indirectly
- change the N-value if you works from CLI.
-
- 5) Maximal offset or Index size (CLI option N) the N-value.
- These value will range from 1 to 32k in step of 512 bytes. A bigger
- value will in general give better compression but can increase the
- compression time for the worst cases dramatically. Most compressors
- works with a static value. As a comparation lharc and lha works with
- the values 4k resp 8k. Note that this value is a multipel 2 or more
- of the S-value, why your CLI input may be changed.
-
- 6) Hash tabel values (CLI option L) the L-values.
- The following combinations are allowed.
-
- 4 5 6 7 shift
- 12 X - - -
- 13 - X - -
- 14 - X X -
- 15 - X X X
- bits
-
- From CLI a combination not allowed will be siently corrected.
- This values thus not affect the compression ratio.
- The bits-value affects memory usage (a block of 1<<bits words
- must be allocated when compressing) and compression speed.
- Reduce IO-buffers before reducing these if it is speed you want.
- The shift value will in general be best as small as possible.
- Typically use L15,5 for all cases but out of memory situations.
- L12,4 is the most memory effectively value (but the slowest).
-
- 8.2) Decompression options
- --------------------------
- 1) Input buffer size (CLI option R) the R-Value.
- This is the buffer size input are readed with when extracting.
-
- 2) Output buffer size (CLI option W) the W-Value.
- This value must be at least as high as the N-value used when
- compression occured. Currently no detection is possible so it
- defaults to a W-value of 32k (the maximal N-value) for smaller
- values.
-
- 8.3) Workdirectory (CLI option w)
- ---------------------------------
- This directory can be used to store temporary files when packing
- archives or preforming a user-defined button command on an on files
- in an archive. Typically hd owners assign a directory on there hd.
- It is saved with the other options.
-
-
- (Right button selected option window)
- ---------------------------------------
-
- 8.4) Catche lines option
- ------------------------
- This option give you possibility to catch Lhf's output and later
- scroll it. Currently lines are stored unpacked (80 bytes each) so
- take care that this option not eats up your memory.
-
- 8.5) Gadget functional delays
- -----------------------------
- This enable syncronousation to your system (or your self).
-
- 8.6) Copy/Store action
- ----------------------
- 1) Copy action.
- With these you can select your perfered [COPY] action
- (r command action in CLI). When [CCOPY] (or the -c option are
- used) all these is set.
-
- 2) Store action.
- With these you can set up if you want to store things in the
- archive or not. This can be handy if you planing to [STORE]
- (or use the -s option) and afterwords compress the whole archive.
-
- 8.7) Save option
- ----------------
- By enter a pathname to a unaltered (even packed) Lhf copy you can
- save all options that can be changed from a option window (or CLI)
- as the default values. These values applies to CLI usages also.
- Note that the originally Lhf program is altered an there is no
- way to get back the previous values. So work with an copy of your
- originally Lhf program.
-
- 8.8) CLI only options
- ---------------------
- 1) d-option
- Selects destination directory.
- 2) h-option
- Selects home directory.
- 3) i-option
- With these you can specify an include file with patterns
- separated with white spaces. No options are parsed
- in the file.
- 4) '-'-option
- By double express introducing '-' in an pattern, you
- suppress the status as an option introducer and it will
- be parsed correctly as a filepattern.
-
-
- 9) Memory Usage
- ----------------------------------------------------------------------------
- Note that:
- - I,O,L values not affects compression.
- - Totally 5*N bytes of memory is allocated when compressing.
-
- I working on a option window that are less technical inwich you
- can optimate with resp to memory usage.
-
- 10) Need of Packing/Reapairing
- ----------------------------------------------------------------------------
- After deletion from an archive unused space is left at the end
- of the archive. To remove these area one must create a temporary
- archive (if there is a another way please tell me!). These oper-
- ation is ignored when deleting files from an archive because when
- you later add to the library the unused space is first overwritten.
- Note that if you copy to a archive and some of the files you copy
- already exist in the archive, deletion are performed so to be sure
- that the archive is of minimal size you have to pack it. It is
- effectively to trie to pack an already packed archive.
-
- If you have had any io trouble with an archive youh should repair it.
- currently this function is not so powerful but it creates a legal
- archive structure.
-
- 11) Window Title
- ----------------------------------------------------------------------------
- The main window title shows
- aa | bb | cc
- where
- aa = free space (KB) in left box unit
- bb = free memory (KB)
- cc = free space (KB) in right box unit.
-
-
- 12) Ctrl-F Action
- ----------------------------------------------------------------------------
- When <Ctrl-F> is pressed during some operations a break will
- occur. In intuition mode a requester will bring up and ask you if
- you want to break the proceeding operation. If you incist a break
- will occur.
- The break is friendly to the file and archive structures but beware
- that when you indeed are replacing files in an archive, the old copies
- can be loosed (have to truncate previosly stored files/directories
- before a copy can be performed). The sources will always correspond to
- what was added or not (nice if you MOVEs). The break are consider as
- an legal end of source data, so no error messages will occur only an
- break message.
-
- 13) Compression Algorithms
- ---------------------------------------------------------------------------
- The algorithms used by Lhf are completely developed and written by
- the author. Many basic ideas was taken from other algoritms but the
- final result is more due to me self and random (a bug leaded me into
- what seems to be the right direction). The main routines are written
- in assembler and are optimated for a 16-bit machine.
-
- 14) Limits
- ----------------------------------------------------------------------------
- Lhf is designed to work with out limits with a few exeption:
- - All paths are currently supposed to be less than 288 bytes.
- - The stack size is expected to be at least 4k
- - The total command line size when preforming a user-defined button
- must be atmost 1k.
-
- A practical note:
- This archive store files as consequetive words. The tree structure is
- fictive. Therfore don't make to big archives for speed (and space)
- reasons. They works, but in an inefficient way.
-
- 15) History
- ----------------------------------------------------------------------------
-
- V1.00 (27-Jan-93) Merged together my archiver and my dir utility, by
- redirection of the CLI output in intuition mode.
-
- V1.01 (18-Mar-93) Changed the compression algoritms.
- Option windows added.
- 2.x supported pattern matching added.
-
- V1.02 (19-Aug-93) Removed some statistical options.
- Reduced the code size.
- Added code to support LhfEd.
- - Now it have been practical!
-
- V1.03 (13-Oct-93) Interface with LhfEd improved.
-
-
- 16) Bugs
- ----------------------------------------------------------------------------
- - Version 1.02 did not stored dates correctly. Fixed with V1.03
-
- - If there are any bug in the latest version, let me know please.
-
-
- 17) Author
- ----------------------------------------------------------------------------
-
- Any question about distribution rights, bug reports, suggestions, criticisms,
- contributions, ideas, gifts, etc. can be sent to me (maybe you can receive a
- later version):
-
- Stefan Pampin
- Timmermansgrand 2 ,4 tr
- S-118 65 Stockholm
- Sweden
-
-
-
-
-